# -*- coding: utf-8 -*-
import re
import entity as E
import shortcuts as SH

quotes = (
     # Превращаем кавычки в ёлочки. Двойные кавычки склеиваем.

    (re.compile(
        u"(?<=\s|[>(])" +
        u"(%s*)" % SH.htmltag +
        u"(%s+)" % SH.any_quote +
        u"(%s*%s%s*)" % (SH.htmltag, SH.phrase_begin, SH.htmltag),
        re.U
    ),
    u'\g<1>%s\g<3>' % E.lquote),

    (re.compile(
        u"^" +
        u"(%s*)" % SH.htmltag +
        u"(%s+)" % SH.any_quote +
        u"(%s*%s%s*)" % (SH.htmltag, SH.phrase_begin, SH.htmltag),
        re.U
    ),
    u'\g<1>%s\g<3>' % E.lquote),

    (re.compile(
        u"(%s*%s%s*)" % (SH.htmltag, SH.phrase_end, SH.htmltag) +
        u"(%s+)" % SH.any_quote +
        u"(%s*%s%s*|\s|[,<-]|$)" % (SH.htmltag, SH.phrase_end, SH.htmltag),
        re.U
    ),
    u'\g<1>%s\g<3>' % E.rquote),
)

dashes = (
    # Знак дефиса или два знака дефиса подряд - на знак длинного тире.
    (re.compile(u'^\s+(--?)(?=\s)'), E.mdash),
    (re.compile(u'(\s+)(--?)(?=\s)'), E.nbsp + E.mdash),

    # Знак дефиса, ограниченный с обоих сторон цифрами - на знак короткого тире.
    (re.compile(u'(?<=\d)-(?=\d)'), E.ndash),
)

all = quotes + dashes